package com.ruoyi.address.service;

import com.ruoyi.address.domain.AreaTree;
import com.ruoyi.address.domain.ChinaArea;
import com.ruoyi.address.domain.vo.ChinaAreaWeChat;
import com.ruoyi.address.domain.vo.ChinaCascadeVo;
import com.ruoyi.address.domain.vo.ResolutionAddressResultVo;
import com.ruoyi.address.domain.vo.ResolutionAddressVo;

import java.util.List;


/**
 * 中国地区Service接口
 *
 * @author ruoyi
 * @date 2023-06-27
 */
public interface IChinaAreaService {
    /**
     * 查询中国地区
     *
     * @param areaCode 中国地区主键
     * @return 中国地区
     */
    ChinaArea selectChinaAreaByAreaCode(String areaCode);


    /**
     * 查询中国地区
     *
     * @param areaCode 中国地区主键
     * @return 中国地区
     */
    ChinaArea selectChinaAreaByAreaCode2(String areaCode);

    /**
     * 查询中国地区列表
     *
     * @param chinaArea 中国地区
     * @return 中国地区集合
     */
    List<AreaTree> selectChinaAreaList(ChinaArea chinaArea);

    /**
     * 新增中国地区
     *
     * @param chinaArea 中国地区
     * @return 结果
     */
    int insertChinaArea(ChinaArea chinaArea);

    /**
     * 修改中国地区
     *
     * @param chinaArea 中国地区
     * @return 结果
     */
    int updateChinaArea(ChinaArea chinaArea);

    /**
     * 批量删除中国地区
     *
     * @param areaCodes 需要删除的中国地区主键集合
     * @return 结果
     */
    int deleteChinaAreaByAreaCodes(String[] areaCodes);

    /**
     * 删除中国地区信息
     *
     * @param areaCode 中国地区主键
     * @return 结果
     */
    int deleteChinaAreaByAreaCode(String areaCode);

    /**
     * 微信省市区
     */
    List<ChinaAreaWeChat> getChinaAreaWeChats();

    /**
     * 级联对象
     */
    List<ChinaCascadeVo> getChinaCascadeVos();

    /**
     * 解析地址
     */
    ResolutionAddressResultVo resolutionAddress(ResolutionAddressVo resolutionAddressVo);


    String selectByParam();

}
